// This example shows how to get a value of a single OPC property. // // Note that some properties may not have a useful value initially (e.g. until the item is activated in a group), which also the // case with Timestamp property as implemented by the demo server. This behavior is server-dependent, and normal. You can run // IEasyDAClient.ReadItemValue.Main.vbs shortly before this example, in order to obtain better property values. Your code may // also subscribe to the item in order to assure that it remains active. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . using System; using OpcLabs.EasyOpc.DataAccess; using OpcLabs.EasyOpc.OperationModel; namespace DocExamples.DataAccess._EasyDAClient { partial class GetPropertyValue { public static void Main1() { // Instantiate the client object. var client = new EasyDAClient(); object value; try { value = client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random", DAPropertyIds.Timestamp); } catch (OpcException opcException) { Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message); return; } Console.WriteLine(value); } } }
# This example shows how to get a value of a single OPC property. # # Note that some properties may not have a useful value initially (e.g. until the item is activated in a group), which also the # case with Timestamp property as implemented by the demo server. This behavior is server-dependent, and normal. You can run # IEasyDAClient.ReadItemValue.Main.vbs shortly before this example, in order to obtain better property values. Your code may # also subscribe to the item in order to assure that it remains active. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from OpcLabs.EasyOpc.DataAccess import * from OpcLabs.EasyOpc.OperationModel import * # Instantiate the client object client = EasyDAClient() # Perform the operation try: value = IEasyDAClientExtension.GetPropertyValue(client, '', 'OPCLabs.KitServer.2', 'Simulation.Random', DAPropertyId(DAPropertyIds.Timestamp)) except OpcException as opcException: print('*** Failure: ' + opcException.GetBaseException().Message) exit() # Display results print('value: ', value, sep='')
' This example shows how to get a value of a single OPC property. ' ' Note that some properties may not have a useful value initially (e.g. until the item is activated in a group), which also the ' case with Timestamp property as implemented by the demo server. This behavior is server-dependent, and normal. You can run ' IEasyDAClient.ReadItemValue.Main.vbs shortly before this example, in order to obtain better property values. Your code may ' also subscribe to the item in order to assure that it remains active. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Imports OpcLabs.EasyOpc.DataAccess Imports OpcLabs.EasyOpc.OperationModel Namespace DataAccess._EasyDAClient Partial Friend Class GetPropertyValue Public Shared Sub Main1() Dim client = New EasyDAClient() Dim value As Object Try value = client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random", DAPropertyIds.Timestamp) Catch opcException As OpcException Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message) Exit Sub End Try Console.WriteLine(value) End Sub End Class End Namespace
// This example shows how to get a value of a single OPC property. // // Note that some properties may not have a useful value initially (e.g. until the item is activated in a group), which also the // case with Timestamp property as implemented by the demo server. This behavior is server-dependent, and normal. You can run // IEasyDAClient.ReadItemValue.Main.vbs shortly before this example, in order to obtain better property values. Your code may // also subscribe to the item in order to assure that it remains active. // // Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . const Timestamp = 4; $Client = new COM("OpcLabs.EasyOpc.DataAccess.EasyDAClient"); try { $value = $Client->GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random", Timestamp); } catch (com_exception $e) { printf("*** Failure: %s\n", $e->getMessage()); Exit(); } printf("%s\n", $value);
# This example shows how to get a value of a single OPC property. # # Note that some properties may not have a useful value initially (e.g. until the item is activated in a group), which also the # case with Timestamp property as implemented by the demo server. This behavior is server-dependent, and normal. You can run # IEasyDAClient.ReadItemValue.Main.vbs shortly before this example, in order to obtain better property values. Your code may # also subscribe to the item in order to assure that it remains active. # # The Python for Windows (pywin32) extensions package is needed. Install it using "pip install pypiwin32". # CAUTION: We now recommend using Python.NET package instead. Full set of examples with Python.NET is available! # # Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . import win32com.client from pywintypes import com_error TIMESTAMP = 4 # Instantiate the client object client = win32com.client.Dispatch('OpcLabs.EasyOpc.DataAccess.EasyDAClient') # Perform the operation try: value = client.GetPropertyValue('', 'OPCLabs.KitServer.2', 'Simulation.Random', TIMESTAMP) except com_error as e: print('*** Failure: ' + e.args[2][1] + ': ' + e.args[2][2]) exit() # Display results print('value: ', value)
Rem This example shows how to get a value of a single OPC property. Rem Rem Note that some properties may not have a useful value initially (e.g. until the item is activated in a group), which also the Rem case with Timestamp property as implemented by the demo server. This behavior is server-dependent, and normal. You can run Rem IEasyDAClient.ReadItemValue.Main.vbs shortly before this example, in order to obtain better property values. Your code may Rem also subscribe to the item in order to assure that it remains active. Rem Rem Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Option Explicit Const Timestamp = 4 Dim Client: Set Client = CreateObject("OpcLabs.EasyOpc.DataAccess.EasyDAClient") On Error Resume Next Dim value: value = Client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random", Timestamp) If Err.Number <> 0 Then WScript.Echo "*** Failure: " & Err.Source & ": " & Err.Description WScript.Quit End If On Error Goto 0 WScript.Echo value
Rem This example measures the time needed to get values of all OPC properties of a single OPC item "one by one". Rem Rem Find all latest examples here : https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Option Explicit Dim ServerDescriptor: Set ServerDescriptor = CreateObject("OpcLabs.EasyOpc.ServerDescriptor") ServerDescriptor.ServerClass = "OPCLabs.KitServer.2" Dim NodeDescriptor: Set NodeDescriptor = CreateObject("OpcLabs.EasyOpc.DataAccess.DANodeDescriptor") NodeDescriptor.ItemID = "Simulation.ReadValue_I4" Dim Client: Set Client = CreateObject("OpcLabs.EasyOpc.DataAccess.EasyDAClient") Dim PropertyElementCollection On Error Resume Next Set PropertyElementCollection = Client.BrowseProperties(ServerDescriptor, NodeDescriptor) If Err.Number <> 0 Then WScript.Echo "*** Failure: " & Err.Source & ": " & Err.Description WScript.Quit End If On Error Goto 0 'EasyDAClient.ReadItemValue "", "OPCLabs.KitServer.2", "Simulation.ReadValue_I4" Dim startTime: startTime = Timer Dim PropertyElement: For Each PropertyElement In PropertyElementCollection Dim propertyID: Set propertyID = PropertyElement.PropertyID On Error Resume Next Dim value: value = Client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.ReadValue_I4", propertyID.NumericalValue) If Err.Number <> 0 Then WScript.Echo "*** Failure: " & Err.Source & ": " & Err.Description WScript.Quit End If On Error Goto 0 'WScript.Echo value Next WScript.Echo "Time taken (milliseconds): " & (Timer - startTime)*1000
The GetPropertyValue Method returns a generic object, regardless of the property involved. You may therefore need to cast the returned value to the expected type, and possibly do further processing on the value, as in the the example below.
// This example shows how to obtain a data type of an OPC item. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . using System; using OpcLabs.BaseLib.ComInterop; using OpcLabs.EasyOpc.DataAccess; using OpcLabs.EasyOpc.OperationModel; namespace DocExamples.DataAccess._EasyDAClient { partial class GetPropertyValue { public static void DataType() { // Instantiate the client object. var client = new EasyDAClient(); // Get the value of DataType property; it is a 16-bit signed integer short dataType; try { dataType = (short)client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random", DAPropertyIds.DataType); } catch (OpcException opcException) { Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message); return; } // Convert the data type to VarType var varType = (VarType)dataType; // Display the obtained data type Console.WriteLine("DataType: {0}", dataType); // Display data type as numerical value Console.WriteLine("VarType: {0}", varType); // Display data type symbolically // Code below illustrates how decisions can be made based on type switch (varType.InternalValue) { case VarTypes.R8: Console.WriteLine("The data type is VarTypes.R8, as we expected."); break; // other cases may come here ... default: Console.WriteLine("The data type is not as we expected!"); break; } } } }
# This example shows how to obtain a data type of an OPC item. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from OpcLabs.BaseLib.ComInterop import * from OpcLabs.EasyOpc.DataAccess import * from OpcLabs.EasyOpc.OperationModel import * # Instantiate the client object. client = EasyDAClient() # Get the value of DataType property; it is a 16-bit signed integer. try: dataType = IEasyDAClientExtension.GetPropertyValue(client, '', 'OPCLabs.KitServer.2', 'Simulation.Random', DAPropertyId(DAPropertyIds.DataType)) except OpcException as opcException: print('*** Failure: ' + opcException.GetBaseException().Message) exit() # Convert the data type to VarType. varType = VarType(dataType) # Display the obtained data type. print('DataType: ', dataType, sep='') # Display data type as numerical value print('VarType: ', varType, sep='') # Display data type symbolically # Code below illustrates how decisions can be made based on type if varType.InternalValue == VarTypes.R8: print('The data type is VarTypes.R8, as we expected.') # other cases may come here ... else: print('The data type is not as we expected!')
' This example shows how to obtain a data type of an OPC item. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Imports OpcLabs.BaseLib.ComInterop Imports OpcLabs.EasyOpc.DataAccess Imports OpcLabs.EasyOpc.OperationModel Namespace DataAccess._EasyDAClient Partial Friend Class GetPropertyValue Public Shared Sub DataType() Dim client = New EasyDAClient() ' Get the value of DataType property; it is a 16-bit signed integer Dim aDataType As Short Try aDataType = CShort(Fix(client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random", DAPropertyIds.DataType))) Catch opcException As OpcException Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message) Exit Sub End Try ' Convert the data type to VarType Dim varType = CType(aDataType, VarType) ' Display the obtained data type Console.WriteLine("DataType: {0}", aDataType) ' Display data type as numerical value Console.WriteLine("VarType: {0}", varType) ' Display data type symbolically ' Code below illustrates how decisions can be made based on type Select Case varType Case VarTypes.R8 Console.WriteLine("The data type is VarTypes.R8, as we expected.") ' other cases may come here ... Case Else Console.WriteLine("The data type is not as we expected!") End Select End Sub End Class End Namespace
Copyright © 2004-2024 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Send Documentation Feedback. Resources: Knowledge Base, Product Downloads. Technical support: Online Forums, FAQ.Missing some example? Ask us for it on our Online Forums! You do not have to own a commercial license in order to use Online Forums, and we reply to every post.